﻿// Type: JetBrains.Application.IApplicationDescriptor
// Assembly: JetBrains.Platform.ReSharper.Shell, Version=6.0.2154.57, Culture=neutral, PublicKeyToken=1010a0d8d6380325
// Assembly location: D:\installed\JetBrains\ReSharper\v6.0\Bin\JetBrains.Platform.ReSharper.Shell.dll

using JetBrains.Annotations;
using JetBrains.Application.ExceptionReport;
using JetBrains.Application.License;
using JetBrains.Build.AllAssemblies;
using JetBrains.DataFlow;
using System;
using System.Drawing;
using System.Reflection;

namespace JetBrains.Application
{
  public interface IApplicationDescriptor
  {
    [NotNull]
    Assembly AllAssembliesResourceAssembly { get; }

    [NotNull]
    string AllAssembliesResourceName { get; }

    [NotNull]
    AllAssembliesXml AllAssembliesXml { get; }

    IPropertyBag Bag { get; }

    DateTime BuiltOn { get; }

    [CanBeNull]
    string BuyURL { get; }

    [CanBeNull]
    IExceptionReportStrategy DefaultExceptionReportStrategy { get; }

    bool DoCheckLicenseReuseOverNetwork { get; }

    [CanBeNull]
    string EvaluationURL { get; }

    [CanBeNull]
    IIssueTracker IssueTracker { get; }

    [CanBeNull]
    ILicenseSupport LicenseSupport { get; }

    [CanBeNull]
    Image ProductAboutBoxImage { get; }

    [CanBeNull]
    Image ProductDialogHeaderImage { get; }

    DateTime ProductBirthDate { get; }

    [NotNull]
    string ProductFullName { get; }

    [NotNull]
    Icon ProductIcon { get; }

    [NotNull]
    string ProductName { get; }

    [CanBeNull]
    Uri ProductURL { get; }

    [NotNull]
    Version ProductVersion { get; }

    [CanBeNull]
    Uri UpdatesFilterUri { get; }

    [CanBeNull]
    string SampleErrorReport { get; }
  }
}
